home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
prolog
/
sbprolog
/
amiga
/
v3_1
/
sbp3_1e.lzh
/
PARSER1.PL
< prev
next >
Wrap
Text File
|
1991-10-31
|
804b
|
36 lines
/* From the book PROLOG PROGRAMMING IN DEPTH
by Michael A. Covington, Donald Nute, and Andre Vellino.
Copyright 1988 Scott, Foresman & Co.
Non-commercial distribution of this file is permitted. */
/* PARSER1.PL */
/* Simple technique for determining
whether a list of atoms is
generated by a context-free grammar. */
sentence(X,Z) :- noun_phrase(X,Y),
verb_phrase(Y,Z).
noun_phrase(X,Z) :- determiner(X,Y),
noun(Y,Z).
verb_phrase(X,Z) :- verb(X,Y),
noun_phrase(Y,Z).
verb_phrase(X,Z) :- verb(X,Y),
sentence(Y,Z).
determiner([the|Z],Z).
determiner([a|Z],Z).
noun([dog|Z],Z).
noun([cat|Z],Z).
noun([boy|Z],Z).
noun([girl|Z],Z).
verb([chased|Z],Z).
verb([saw|Z],Z).
verb([said|Z],Z).
verb([believed|Z],Z).